from parsel import Selector
"""
  示例2 遍历节点，提取文本
  这里我们遍历了 items 变量，赋值为 item，那么这里 item 又变成了一个 Selector 对象，那么此时我们又可以调用其 css 或 xpath 方法进行内容提取了
"""
html = '''
<div>
    <ul>
         <li class="item-0">first item</li>
         <li class="item-1"><a href="link2.html">second item</a></li>
         <li class="item-0 active"><a href="link3.html"><span class="bold">third item</span></a></li>
         <li class="item-1 active"><a href="link4.html">fourth item</a></li>
         <li class="item-0"><a href="link5.html">fifth item</a></li>
     </ul>
 </div>
'''


selector = Selector(text=html)
items = selector.css('.item-0')
for item in items:
    # get 方法可以将 SelectorList 包含的 Selector 对象中的内容提取出来
    text = item.xpath('.//text()').get()
    print(text)

"""
  示例3  get 方法仅仅返回了第一个 li 对象的文本内容
"""
result = selector.xpath('//li[contains(@class, "item-0")]//text()').get()
print(result) # first item  只返回第1个li对象文本内容


"""
  示例4 getall 方法返回所有节点，文本内容
"""
result = selector.xpath('//li[contains(@class, "item-0")]//text()').getall()
print(result) # ['first item', 'third item', 'fifth item']
